Instantaneous symbol lookup

ABSTRACT

A computer program assists in the completion of text input provided by a user. For example, the computer program may maintain a list of n-tuples (where n&gt;1), each of which includes n text strings. For example, each n-tuple may include a stock ticker symbol and the name of a company having that stock ticker symbol. As the user types each character, the program determines whether the text typed by the user so far matches any of the text strings in the n-tuples. The program provides the user with an indication of whether any matches have been found, such as by displaying a list of the n-tuples having text matching the text typed by the user so far. The program then allows the user to select one of the matching n-tuples. The program uses text (such as a stock ticker symbol) from the user&#39;s selection to complete the text input.

RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.12/435,296 filed May 4, 2009, which is incorporated herein by reference,and which is a continuation of U.S. application Ser. No. 11/384,957filed Mar. 20, 2006, now issued under U.S. Pat. No.: 7,529,795, which isincorporated herein by reference and which, in turn, incorporates byreference U.S. provisional application Ser. No. 60/784,140 filed Mar.20, 2006 and U.S. provisional application Ser. No. 60/784,141 filed Mar.20, 2006, both of which are incorporated herein by reference.

BACKGROUND

1. Field of the Invention

The present invention relates to computer-implemented techniques forassisting in the completion of text inputted by a user and, moreparticularly, to identifying candidate text to input into a text fieldbased on text typed by a user into the text field.

2. Related Art

Computer software has long been used to reduce the effort that computerusers need to expend to provide textual input. For example, conventionalword processing software typically supports macros, which may bepre-defined by the software vendor and/or defined by the user, forreplacing a short text string typed by the user with a longer textstring, thereby eliminating the need for the user to manually type thelonger text string. For example, consider a macro which defines the text“Sincerely yours” as a replacement for the text “sy”. When the usertypes “sy”, the word processor may automatically replace “sy” with“Sincerely yours”.

The word processor may maintain multiple macros, each of which defines amapping between source text (the text typed by the user) and replacementtext. As the user types, the word processor determines whether the textmost recently typed by the user matches the source text of any existingmacro. If such a match is found, the word processor replaces the typedsource text with the corresponding replacement text defined by themacro. This feature is implemented, for example, in the widely usedMicrosoft Word word processor as part of the “AutoCorrect” feature.

Another technique that some computer software uses to reduce the numberof keystrokes required to be typed by the user is the following. As theuser types, the software attempts to match the most-recently typed textagainst text previously typed by the user in the same context. Forexample, in some web browsers, as the user types the web address (URL)of a web site in the address bar, the web browser attempts to match theaddress being typed by the user with addresses previously typed by theuser. As the user types, the web browser displays a list of matches.

For example, assume that the user has previously typed “www.google.com”,“www.books.com”, “www.booksamillion.com”, and “www.booksense.com” intothe address bar. If the user next begins typing “www” into the addressbar, the web browser may display all four previously-typed addressesbelow the address bar, because “www” matches the beginning of all suchaddresses.

If the user continues to type “www.books”, the web browser willeliminate “www.google.com” from the list of possible matches because itno longer matches the text being typed by the user. The list will still,however, display “www.books.com”, “www.booksamillion.com”, and

“www.booksense.com” in the list, because all three of thesepreviously-typed addresses match the text being typed by the user. Asthe user continues to type, any address having leading text that doesnot match the typed text will be eliminated from the list of potentialmatches.

At any point, the user may select one of the addresses in the list ofpossible matches (such as by using a mouse to click on the address or byusing the arrow and ENTER keys on the keyboard), thereby causing theselected address to be entered into the address bar, and therebyeliminating the need for the user to manually type the entire address.This can save the user significant time and effort, particularly whenthe address selected is very long. This feature has been used moregenerally in various other kinds of software requiring the user to typetext into the same form fields on multiple occasions.

Users stand to benefit from additional features which reduce the numberof keystrokes required to be made by the user.

SUMMARY

A computer program assists in the completion of text input provided by auser. For example, the computer program may maintain a list of n-tuples(where n>1), each of which includes n text strings. For example, eachn-tuple may include a stock ticker symbol and the name of a companyhaving that stock ticker symbol. As the user types each character, theprogram determines whether the text typed by the user so far matches anyof the text strings in the n-tuples. The program provides the user withan indication of whether any matches have been found, such as bydisplaying a list of the n-tuples having text matching the text typed bythe user so far. The program then allows the user to select one of thematching n-tuples. The program uses text (such as a stock ticker symbol)from the user's selection to complete the text input.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a dataflow diagram of a message board aggregation systemaccording to one embodiment of the present invention;

FIG. 2 is a flowchart of a method performed by the system of FIG. 1according to one embodiment of the present invention; and

FIG. 3 is a window displayed by the message board aggregation system ofFIG. 1 according to one embodiment of the present invention.

FIGS. 4A-4C are illustrations of a graphical user interface text inputcontrol for use in assisting in the completion of text input by a useraccording to embodiments of the present invention.

FIGS. 5A-5B are illustrations of web page hyperlinks displayed byembodiments of the present invention.

DETAILED DESCRIPTION

Referring to FIG. 1, a dataflow diagram is shown of a message boardaggregation system 100 according to one embodiment of the presentinvention. Referring to FIG. 2, a flowchart is shown of a method 200performed by the system 100 of FIG. 1 according to one embodiment of thepresent invention. Referring to FIG. 3, a window 300 displayed by themessage board aggregation system 100 of FIG. 1 is illustrated accordingto one embodiment of the present invention.

In general, the window 300 shown in FIG. 3 contemporaneously displays atable 302 containing message table content (e.g., message title, messageauthor, message ID, message sentiment, message time of writing, messageweb page source, person being replied to) and message content 304corresponding to a message represented by one of the entries in themessage table 302. In the embodiment illustrated in FIG. 3, the messagecontent 304 is displayed in a web page 306 from a message board web siteto which the message content 304 was originally posted. In theembodiment illustrated in FIG. 3, the source web page 306 (containingthe message content 304) is displayed in a first frame 308 of the webpage 300, and the message table 302 is displayed in a second frame ofthe web page 300.

The web page 306 is an example of a “source” web page as that term isused herein. The message table 302 may include summaries of messagesoriginally posted to more than one source web page. The web page 300,therefore, provides an aggregation service which aggregates messagesfrom a plurality of web-based message boards. The web page 300,therefore, is referred to herein as an “aggregation” web page.

Having described certain general features of particular embodiments ofthe present invention, techniques that may be used to implementembodiments of the present invention will now be disclosed. Referring toFIG. 1, multiple external message boards 102 a-m are illustrated. Forease of illustration and explanation, each of the message boards 102 a-mis illustrated simply as a set of messages. More specifically, messageboard 102 a includes a set of messages 104 a, including messages 106a-n; message board 102 b includes a set of messages 104 b, includingmessages 108 a-n; and message board 102 m includes a set of messages 104m, including messages 110 a-n. In practice, the message boards 102 a-mmay be implemented using web servers or any other appropriate kind oftechnology.

Furthermore, although only three external message boards 102 a, 102 b,and 102 m are shown in FIG. 1 for purposes of example, the system 100may include and/or access any number of external message boards, asindicated by the variable m. Furthermore, the term “message board” isnot limited to any particular kind of communications mechanism, andincludes not only web-based message boards, but also newsgroups andemail. Although each of the message boards 102 a-m is shown in FIG. 1 asincluding the same number of messages n, the number of messages may varyamong the message boards 102 a-m.

A single message board, such as a web-based financial message board, mayinclude a plurality of topics, each of which may include a plurality ofthreads or sub-topics. For ease of illustration and explanation, each ofthe message boards 102 a-m is illustrated in FIG. 1 as containing only asingle thread of messages. This does not represent a limitation of thepresent invention. Rather, the techniques disclosed herein may beapplied to message boards including any number of topics, threads, orother groupings of messages.

The aggregation system 100 also includes a message board aggregationserver 112 and a corresponding message board 114 (which includes set 116of messages 118 a-n). The message board 114 is managed by theaggregation server 112 or by the same entity that manages theaggregation server. Therefore, the message board 114 will be referred toherein as an “internal” message board, while the message boards 102 a-mwill be referred to herein as “external” message boards in relation tothe aggregation server 112. As will be described in more detail below,the aggregation server 112 aggregates messages from two or more of themessage boards 102 a-m and 114, and displays content from the aggregatedmessages in the web page 300.

Referring again to FIG. 2, the system 100 of FIG. 1 may perform themethod 200 to aggregate content from the message boards 102 a-m and 114to display aggregated message content in the window 300. A user 142 usesa web browser 140 to browse over the Internet 138 to a web site servedby the aggregation server 112. The web page 300 is an example of a webpage that may be part of such a web site. Upon visiting the web site,the user 142 selects one or more source message boards from which toview message content and summaries (step 202). The user 142 may, forexample, make this selection by selecting the name of an externalmessage board (such as one of the external message boards 102 a-m) froma selection of sources accessible in any of a variety of formats, oneexample of which is a drop-down list 316. Note, however, that the user142 may select more than one source message board.

In the particular example illustrated in FIG. 3, the web page 300combines content extracted from the single external message boardindicated by the selection in the drop-down list 316 with contentextracted from the internal message board 114 associated with theaggregation server 112. Furthermore, in the example illustrated in FIG.3, the user 142 may use drop-down list 318 to select the number ofmessage summaries to be displayed in message table 302.

The user 142 selects other input parameters (such as the number ofmessages to be retrieved) (step 203). As described in more detail below,the aggregation server 112 may store the other input parameters in a setof other preferences 126.

The user 142 selects a particular message board topic to view (step204). The user 142 may, for example, make this selection by identifyinga particular company, such as by typing the company's name or stockticker symbol in text field 312 and clicking button 314. This is onlyone of many ways in which the user may select a message board topic toview.

Furthermore, in the embodiment illustrated in FIG. 3, the web page 300also includes a directory (forum) 334 user interface control which may,for example, take the form of a drop-down list. For example, thedirectory control 334 may allow the user to select either a “stock”forum or a “sports” forum. If the user 142 selects the “stock” forum,then the web page 300 may enable selection of stock symbols in textfield 312, while if the user 142 selects the “sports” forum, then theweb page 300 may enable selection of sports symbols in text field 312.More generally, the user's selection in the directory control 334dictates which group of symbols is available for selection in the textinput field 312. The use of the directory control 334 is provided merelyfor purposes of example and does not constitute a limitation of thepresent invention.

The user's message board selection is transmitted by the web browser 140over the Internet 138 to the message board aggregation server 112. Inresponse to receiving the user's selection, the aggregation server 112retrieves information derived from messages in the selected sourcemessage board(s) having the selected topic (step 206). In the embodimentillustrated in FIG. 3, the aggregation server 112 also retrieves messagecontent from the internal message board 114. This is not, however, arequirement of the present invention. The internal message board 114may, for example, be selectable or de-selectable as a source by the user142 in the same manner as the external message boards 102 a-m.

Note further that any subset of the external message boards 102 a-m maybe selectable as a source by the user 142. Such a subset may, forexample, consist of all of the external message boards 102 a-m, any oneof the message boards 102 a-m, or any combination of fewer than all ofthe message boards 102 a-m.

The information extracted from the selected source message board(s) bythe aggregation server may include any of a variety of information thatmay be of interest to the user 142. Examples of information that may beextracted from each on-topic message in the selected message board(s)includes, but is not limited to the message title, author, ID,sentiment, time of writing, web page source, person being replied to,and message statistics (e.g., the number of times others haverecommended the message, or a rating of the popularity of the message).

At any time during performance of the method 200 illustrated in FIG. 2,the user 142 may select one or more fields to be displayed in themessage table 302 (step 208). For example, in the embodiment illustratedin FIG. 3, the message table includes a column 322 a labeled “MessageTitles,” which always displays the titles of the messages summarized inthe table 302. The table 302 also includes, however, a second column 322b having content that may be varied by the user 142. More specifically,the user 142 may select link 320 a to cause the column 322 b to displaythe authors of the messages being summarized in the table 302 (asillustrated in FIG. 3). Similarly, the user 142 may select link 320 b tocause the column 322 b to display the times at which the messages beingsummarized in the table 302 were posted.

The particular selection of fields allowed in the embodiment illustratedin FIG. 3 is merely an example and does not constitute a limitation ofthe present invention. Rather, the user 142 may be allowed to select anycombination of message fields for display in the table 302. Otherexamples of two fields from which the user 142 may select include, butare not limited to: message Title and Author fields; message Title andTime Submitted fields; and message Author and Author Attribute fields.Furthermore, a single column in the table 302 may display content frommore than one field. For example, a single “time and author” column maysimultaneously display both message time and author.

At any time during performance of the method 200 illustrated in FIG. 2,the user 142 may select an order in which message summaries are to besorted in the message table 302 (step 210). For example, in theembodiment illustrated in FIG. 3, the user 142 may select the heading ofcolumn 322 a to cause the contents of the table 302 to be sorted bymessage title, or select the heading of column 322 b to cause thecontents of the table 302 to be sorted by the contents of column 322 b(e.g., message author or posting time). Alternatively, for example, thecontents of the table 302 may be sorted automatically by posting time.Once again, these particular sorting options are merely examples and donot constitute limitations of the present invention.

The aggregation server 112 keeps track of: (1) the source messageboard(s) selected by the user 142 in source selections 120; (2) thetopic (e.g., company) selected by the user 142 in topic selection 121;(3) the field(s) selected by the user 142 in field selections 122; (4)the sort order 124 selected by the user 142 in sort order 124; and (5)any other preferences 126 specified by the user 142.

The aggregation server 112 includes an aggregation engine 128, whichgenerates message content units 132 based on the information extractedin step 206 and the user preferences described above (step 212). Forexample, the message content units 132 may include a content unit foreach message that matches the topic selection 121 (e.g., company) in anyof the source message board(s) indicated by the source selection(s) 120.Each of the message content units 132 may include information only forthe fields specified by the field selections 122, but this is notrequired. The message content units 132 may, for example, includeextracted information for fields other than those specified by the fieldselections. The message content units 132 may include all of theinformation that was extracted in step 206.

As will be described in more detail below, the information in themessage content units 132 forms the basis for the information displayedin the message table 302 on the web page 300 (FIG. 3). In the embodimentillustrated in FIG. 3, the frame 308 displays a web page 306corresponding to one of the message summaries displayed in the messagetable 302. When the web page 300 is first displayed, the message contentcorresponding to the first message summary in the table 302 may bedisplayed by default in the frame 308. Thereafter, the user 142 mayselect any of the message summaries in the table 302, such as byclicking on the title of the message in column 322 a, to cause messagecontent for a different message to be displayed-in the frame 308.

The aggregation engine 128, therefore, provides message content 130corresponding to the currently-selected message summary in the messagetable 302 (step 214). The aggregation engine 128 may, for example,provide the content 130 in the form of HTML and/or other web content bycopying the content 130 from its source message board (e.g., one of theexternal message boards 102 a-m or the internal message board 114). Thecontent 130 may either be copied to a storage medium local to theaggregation server 112, or merely passed as a reference to the clientweb browser 140, which may retrieve the message content 130 directlyfrom its source and display it in the frame 308, without using theaggregation server 112 to serve the content 130 to the user 142.

The aggregation server 112 includes a web page generator 134, whichproduces an aggregated web page 136 (including HTML and/or other webcontent) that includes both the message content units 132 and themessage content 130 (or a link to the message content 130) (step 216).The aggregated web page 136 may, for example, include a first frame fordisplaying a table including information from the message content units132, and a second frame for displaying the message content 130.

The aggregation server 112 transmits the aggregated web page 136 to theweb browser 140 over the Internet (step 218). The web browser 140displays a window (such as the window 300 shown in FIG. 3) including:(1) web content (such as the web page 306) representing a first messageposted to a first online forum, such as the external message board 102a; and (2) a plurality of message summaries (such as are displayed inthe table 302) including information derived from the first message(such as the message summary 324 of the message 304) and secondinformation derived from a second message in the plurality of messages(such as the message summary 326 of another message not displayed in thewindow 300). The web content and the message summaries may be displayedin different frames in the same window.

As described above, the message content units 132 that are downloaded bythe web browser 140 to the local machine of the user 142 may includemore information than is displayed in the table 302. The table 302 may,for example, be designed to display only the information that isconsidered most important to the user 142, such as the title, author,and/or timestamp of the aggregated messages. The user 142 may, however,read a particular one of the message summaries in the table 302 anddesire to obtain additional information about the corresponding message.Although the user 142 could obtain such additional information byclicking on the message summary, thereby causing the correspondingmessage web content to be displayed in the frame 308, this requires theweb browser 140 to download and render additional web content. Acquiringadditional information about many messages in this way may therefore betedious and time-consuming.

Alternatively, the web page 300 allows the user 142 to quickly obtainadditional summary information about any message listed in the table 302by, for example, moving and holding (“hovering”) the mouse cursor overthe message's summary. For example, in the case illustrated in FIG. 3,the user 142 has hovered the mouse cursor over message summary 324,thereby causing the web page 300 to display a tooltip 328 containingadditional summary information about the source message 304. In theexample illustrated in FIG. 3, the tooltip 328 includes additionalinformation such as the message ID, author, sentiment, date and time,and the beginning of the message text.

Because the additional summary information has been preloaded by the webbrowser 140 in the process of downloading the message content units 132from the aggregation server 112, the web browser 140 may generate anddisplay the tooltip essentially instantaneously, and without againaccessing the server 112. This allows the user 142 to quickly browsesuch additional information for many messages listed in the table 302quickly and easily, simply by moving the mouse cursor over thecorresponding message summaries.

The aggregation of messages from multiple message boards at multipleURLs into a single rich web page, including content initially is hiddenand that may be displayed essentially instantaneously by the web browserclient 140 without the need to make an additional access to the server112, is made convenient by the increasing availability of broadbandconnectivity to users. Such broadband connectivity increasingly isavailable not only through wired networks at home and in the workplacebut also through wireless networks accessible using mobile computingdevices. By making it feasible for the client web browser 140 todownload content-rich web pages without causing the user 142 to incur asignificant delay before the web page is displayed, broadbandconnections allow the web browser 140 to provide a degree ofinteractivity in web pages that approaches or even matches thatpreviously available only in client-side applications.

Note that the use of a tooltip is provided merely as an example and doesnot constitute a limitation of the present invention. Rather, theadditional summary information may be provided in other forms, such asin a static object (e.g., a text box) on the web page 300. Furthermore,the user 142 may cause the additional summary information to bedisplayed using actions other than hovering, such as clicking orpressing a hotkey.

The tooltip, or other graphical user interface element that is used todisplay additional summary information, may be variable in size. Forexample, the web page 300 may allow the user 142 to select from amongthree sizes: small, large, and very large. The very large size may beparticularly useful for users who are visually impaired. Such a featuremay make it possible for visually impaired users to benefit from thefeatures of the web page 300, without requiring the design of the webpage (e.g., the font size of text in the table) to change.

Furthermore, the web page 300 may be implemented such that selecting(e.g., hovering or clicking) one of the message summaries in the table302 always causes the corresponding message to be displayed in the frame308, while the additional summary information (e.g., tooltip) isdisplayed. Although there may be some delay in loading and displayingthe full message in the frame 308, the user 142 may view the additionalsummary information essentially immediately, thereby enabling the user142 to decide quickly whether to wait for the remainder of the messageto load or to move on to the next message summary.

The web page 300 may allow the user 142 to post additional messages toany of the source message boards. For example, in the embodimentillustrated in FIG. 3, the web page 300 includes an “Add Message” button330 that the user 142 may click to add a new message. When the user 142clicks the button 330, a web page may be displayed which allows the user142 to type a new message and submit it either to the internal messageboard 114 or to one of the external message boards 102 a-m. In eithercase, once the user 142 has posted a new message, the message may bedisplayed in the frame 308, and a summary of the message may bedisplayed in the table 302.

Similarly, the web page 300 may include a “Reply Message” button (notshown in FIG. 3) that the user 142 may click to reply to the messagecurrently being shown in the frame 308. When the user 142 submits areply, the reply may be posted to the same message board as the messageto which the user 142 has replied, whether that message board isexternal or internal to the aggregation server 112. Alternatively, theuser 142 may be allowed to choose whether to reply from the internalmessage board 114 maintained by the aggregation server 112 or from theexternal message board currently displayed in the frame 308.

Message summaries in the message table 302 may be sorted in any manner.For example, the summaries may be sorted by time of posting by default.The user 142 may, however, sort these messages in other ways (e.g., bymessage title, message author, message ID, message sentiment, messageweb page source, person being replied to). If the message table 302includes message summaries derived from multiple source message boards,the message table 302 may nonetheless display the summaries in anaggregated sorted list. For example, the summaries may be sorted by timeof posting, in which case message summaries corresponding to messagesfrom different source message boards may be interwoven with each otheraccording to the times at which they were posted. This feature providesthe user 142 with a unified view of messages across multiple messageboards.

Among the advantages of the invention are one or more of the following.The features of the web page 300 illustrated in FIG. 3 provide animprovement in speed and ease of use when accessing message tablecontent and corresponding message content, in comparison to conventionalsystems for performing such functions. In particular, the web page 300both allows the user 142 to view a message summary and correspondingmessage content contemporaneously, and to quickly scan additionalmessage summary information not contained in the table 302.

Furthermore, the techniques disclosed herein make it possible to readand write messages from and to multiple message board sources. Writingmessages can be performed either from the web page 300, or at theoriginal message board source in the frame 308. This saves the user 142time in comparison to reading and writing multiple message boards usingdistinct web browser windows for each message board.

By providing features that are attractive and useful to frequent usersof financial message boards, the techniques disclosed herein provide anopportunity to generate significant revenue from advertising. An exampleof a banner advertisement for a financial services firm is shown on theweb page 300 in FIG. 3. Note, however, that the web page 300 (and theweb site of which it is a part) may generate revenue using anymechanism, not merely banner advertisements.

Furthermore, note that content other than an advertisement may occupythe space occupied by the advertisement in FIG. 3. For example, theaggregation server 112 may display an advertisement for basic (i.e.,non-paid) users, but display additional summary information (such as theinformation displayed by the tooltip 328 in FIG. 3) in a static object(such as a text box) in the same location as but instead of theadvertisement for premium (i.e., paid) users. The web page 300, in otherwords, may be designed to make efficient use of available screen “realestate” to tailor the content that is displayed in an attempt tomaximize revenue.

It is to be understood that although the invention has been describedabove in terms of particular embodiments, the foregoing embodiments areprovided as illustrative only, and do not limit or define the scope ofthe invention. Various other embodiments, including but not limited tothe following, are also within the scope of the claims. For example,elements and components described herein may be further divided intoadditional components or joined together to form fewer components forperforming the same functions. In particular, the functions performed bythe aggregation server 112 shown in FIG. 1 may be further subdividedinto additional components for performing the same functions.

Although certain examples disclosed herein relate to financial messageboards, the present invention is not limited to such examples. Moregenerally, the techniques disclosed herein may be applied to any kind ofmessaging system, such as email and newsgroups, and to messaging systemscontaining messages whose content does not relate to finance.Furthermore, the techniques disclosed herein may be applied to aggregatecontent from web sites and other communications systems that are notdesigned as message boards. For example, the techniques disclosed hereinmay be used to aggregate news articles posted to news web sites, such asthe web site for the New York Times (www.nytimes.com) or the BusinessWeek (www.businessweek.com), even though such web sites are not designedas message boards to which members of the public may post messages. Theterm message, as used herein, therefore, includes not only messagesposted to message boards, but more generally to any unit ofcommunication, such as an email message, a newsgroup posting, or a newsarticle posted by an administrator to a news web site.

As described above, the aggregation server 112 extracts certaininformation from source message boards to produce the message contentunits 132. Examples of categories from which information may be derivedinclude, but are not limited to: message title, message author, messageidentifier, message sentiment, message timestamp, message web address,message thread, message attribute (e.g., size), message link (linkscontained in the message), message keyword (keywords contained in themessage), message recipient, and message statistics (e.g., the number oftimes others have recommended the message, or a rating of the popularityof the message). The user 142 may be allowed to sort the aggregatedmessage summaries displayed in the message table 302 by, for example,any of the categories mentioned above.

Ease of visual cognition is key to a successful user interface. Varioustechniques may be combined with those described above to improve suchease of visual cognition. For example, message summaries in the table302 may be color-coded or otherwise coded (such as by the use ofdistinct icons or words) according to their source or to any otherattribute, such as according to any of the categories mentioned above.The table 302 may include any number of rows and columns. Columns may beassigned to message categories (attributes) in any way. For example, asingle column may correspond to a single attribute or to multipleattributes. For example, in one embodiment, there are two columns: (1)title and (2) time and author.

The web browser 140 is not limited to any particular web browserapplication. The web browser 140 may, for example, be of any kind andoperate on any kind of device (e.g., desktop computer, laptop computer,personal-digital assistant, or smart phone). Furthermore, although thenetwork 138 in FIG. 1 is labeled as the “Internet,” the web browser 140and aggregation server 112 may communicate over any kind of network,such as a private intranet.

The techniques described above may be implemented, for example, inhardware, software, firmware, or any combination thereof. The techniquesdescribed above may be implemented in one or more computer programsexecuting on a programmable computer including a processor, a storagemedium readable by the processor (including, for example, volatile andnon-volatile memory and/or storage elements), at least one input device,and at least one output device. Program code may be applied to inputentered using the input device to perform the functions described and togenerate output. The output may be provided to one or more outputdevices.

Each computer program within the scope of the claims below may beimplemented in any programming language, such as assembly language,machine language, a high-level procedural programming language, or anobject-oriented programming language. The programming language may, forexample, be a compiled or interpreted programming language.

Each such computer program may be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a computer processor. Method steps of the invention may beperformed by a computer processor executing a program tangibly embodiedon a computer-readable medium to perform functions of the invention byoperating on input and generating output. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, the processor receives instructions and data from a read-onlymemory and/or a random access memory. Storage devices suitable fortangibly embodying computer program instructions include, for example,all forms of non-volatile memory, such as semiconductor memory devices,including EPROM, EEPROM, and flash memory devices; magnetic disks suchas internal hard disks and removable disks; magneto-optical disks; andCD-ROMs. Any of the foregoing may be supplemented by, or incorporatedin, specially-designed ASICs (application-specific integrated circuits)or FPGAs (Field-Programmable Gate Arrays). A computer can generally alsoreceive programs and data from a storage medium such as an internal disk(not shown) or a removable disk. These elements will also be found in aconventional desktop or workstation computer as well as other computerssuitable for executing computer programs implementing the methodsdescribed herein, which may be used in conjunction with any digitalprint engine or marking engine, display monitor, or other raster outputdevice capable of producing color or gray scale pixels on paper, film,display screen, or other output medium.

Referring to FIG. 4A, an illustration is shown of a graphical userinterface text input control 400 for use in assisting in the completionof text input by a user according to one embodiment of the presentinvention. The control 400 includes a text input field 402 into whichthe user may type text.

In the particular embodiment illustrated in FIG. 4A, the text inputfield 402 is used for entering either the name of a company or the stockticker symbol of the company. The text input field 402 may, for example,be implemented in a financial message board aggregation web site of thekind described in the above-referenced patent application entitled“Message Aggregator”, now issued under U.S. Pat. No.: 7,529,795. Thetext input field 402, however, may be used for entering text of anykind, and is not limited to use in any particular kind of computerprogram (such as a web browser).

For purposes of the following discussion, however, assume that the textinput field 402 is used to enter either the name of a company or thestock ticker symbol of the company. The program that provides the textinput field 402 may maintain a list of ticker-name tuples. For example,one tuple may include the stock ticker symbol “AAP” and the name of thecompany having that stock ticker symbol, namely “Advance Auto PartsInc.” Another tuple may, for example, include the stock ticker symbol“AAPH” and the name of the company having that stock ticker symbol,namely “American Petro-Hunter Inc.” Yet another tuple may, for example,include the stock ticker symbol “AAPL” and the name of the companyhaving that stock ticker symbol, namely “Apple Computer Inc.”

In the particular example illustrated in FIG. 4A, the user has begun totype the text “aap”. As the user types, the program that provides thetext input field 402 may attempt to match the text that the user hastyped so far against any of the text in the tuples maintained by theprogram. For example, the program may attempt to match the text typed bythe user so far against both the stored list of stock ticker symbols andthe list of corresponding company names.

If the program determines that the text typed by the user so far matchesany of the text in a particular tuple, the program may indicate such amatch to the user. For example, if the program determines that the texttyped by the user so far matches either the stock ticker symbol or thecompany name of a particular tuple, the program may indicate to the userthat a match has been found. If matches are found with text in multipletuples, the program may indicate to the user that multiple matches havebeen found.

In the particular embodiment illustrated in FIG. 4A, any matches areindicated to the user by displaying a list of matching tuples,consisting of the stock ticker name followed by the company name (inparenthesis) of each matching tuple. For example, in FIG. 4A, the texttyped so far by the user (“aap”) matches three stock ticker symbols(“AAP”, “AAPH”, and “AAPL”). The program therefore displays the text 408a-c of the three matching tuples in the list 406 a. It should beappreciated that the contents of the list may change as the usercontinues to type additional characters in the text input field 402 oras the user deletes previously-typed characters in the text input field402.

Furthermore, the subset of each text item in the list that matches theinput text may be visually emphasized. For example, in FIG. 4A, the text“AAP” may be highlighted (such as by color coding) in each of thematching text strings 408 a, 408 b, and 408 c. Highlighting the matchingtext in this way enables the user to quickly recognize the basis of eachmatch, thereby enabling the user to quickly determine whether any of thedisplayed text strings 408 a-c corresponds to the company for which theuser was searching.

In the particular example illustrated in FIG. 4A, the text 404 a typedby the user in the text input field 402 only matches stock tickersymbols in the set of stored tuples. Referring to FIG. 4B, an example isillustrated in which the text 404 b (“appl”) typed by the user matchescompany names (e.g., “Apple Computer Inc.”, “Applied Biosystems Group”,and “Applied Digital Solutions”) instead of stock ticker symbols. Thelist 406 b displayed in FIG. 4B, therefore, includes text 410 a-jcorresponding to tuples having company names that match the typed text404 b. Although the list 406 b is sorted by stock ticker symbol, thelist 406 b may be organized in any manner. For example, the list 406 bmay be sorted by company name. Note that the list 406 b displayed inFIG. 4B may be generated dynamically while the user types the text 404 bin the same manner as described above with respect to the list 406 a ofFIG. 4A, namely by attempting to match the text 404 b against both stockticker symbols and company names.

Referring to FIG. 4C, an example is illustrated in which the text 404 c(“del”) typed by the user matches both ticker symbols (i.e., “DEL”,“DELL”, and “DELT”) and company names (i.e., “Delcath Systems Inc.”,“Delta Capital Technologies Inc.”, “deltathree Inc.”, “Delhaize Group(ADR)”, “Delta Financial Corp.”, and “Delphi Financial Group Inc.”). Thelist 406 c displayed in FIG. 4C, therefore, includes both text 412 a-ccorresponding to tuples having ticker symbols that match the typed text404 c and text 412 d-j having company names that match the typed text404 c. Although the list 406 c includes two sections—one for matchingticker symbols and one for matching company names—the list may beorganized in any manner. For example, the list 406 c may be a singlelist sorted by company name or ticker symbol.

Once a list of matching tuples has been displayed (such as any of thelists 406 a-c illustrated in FIGS. 4A-4C), the program may allow theuser to select a tuple from the list to complete the text being typed inthe text input field 402. For example, if the user clicks on an item inthe list, the program may fill in the text field 402 with the stockticker symbol of the tuple selected by the user. Note, however, thatwhen the user selects a tuple from the list, the program may fill in thetext field 402 with a stock ticker symbol even though the user had begunto type a company name, or vice versa. The user may also select morethan one of the output strings by using the shift or control key whileselecting a subset of the desired output strings.

The techniques disclosed herein may be used to reduce the number ofkeystrokes required to be input by the user. This may save the usereffort and enable the user to use the corresponding computer programmore quickly. For example, in comparison, conventional financial portalweb sites typically provide a “symbol lookup” feature that allows a userto find the stock ticker symbol for a company by typing the company'sname, and then clicking on a “find” button. Examples of existingfinancial portal web sites, some of which provide some form of “symbollookup” feature, but which do not include the kind of lookup featuresdisclosed herein, include:

-   http://moneycentral.msn.com/investor/common/find.asp?NextPage=/detail/sto-ck    quote,-   http://finance.yahoo.com/lookup,    http://money.cnn.com/quote/lookup/index.html,-   http://www.marketwatch.com/tools/quotes/lookup.asp,    http://clearstation.etrade.com/cgi-bin/symbol search,    http://www.marketcenter.com/std/search.action,-   http://www.marketcenter.com/std/toolbox.jsp,    http://www.quote.com/qc/lookup/symbol search.aspx,-   http://www.wallstreettape.com/charts/custom/symbol-lookup.asp,    http://online.wsj.com/public/us,-   http://online.barrons.com/public/main,-   http://bigcharts.marketwatch.com/symbollookup/symbollookup.asp,-   http://www.esignalcentral.com/support/symbol/default.asp,    http://www.hoovers.com/free/,-   http://www.bloomberg.com/apps/tkrlookup,    http://www2.barchart.com/lookup.asp,-   http://stockcharts.com/index.html,    http://tools.thestreet.com/tsc/quotes.html?pg=qcn&,-   http://www.earningswhispers.com/tickerlookup.asp,    http://www.whispernumber.com/index.jsp,-   http://www.google.com,    http://quote.morningstar.com/TickerLookup.html, http://www.fool.com,-   http://www.siliconinvestor.com, http://www.investorshub.com,    http://www.ragingbull.com,-   http://www.boardcentral.com, http://www.briefing.com/,    http://www.newyorktimes.com,-   http://www.washingtonpost.com, http://www.boston.com,    http://www.ft.com,-   http://news.bbc.co.uk/, http://www.inc.com, http://www.forbes.com,    http://www.fortune.com,-   http://research.businessweek.com/ticker/create_ticker.asp,    http://www.etrade.com,-   http://www.ameritrade.com, http://www.schwab.com,    http://www.scottrade.com,-   http://www.sharebuilder.com, and http://www.vanguard.com,    http://seekingalpha.com/,-   http://portfolios.abcnews.go.com/guotes/getQuote,    http://www.investorvillage.com/home.asp,-   http://www.tickertech.com/cgi/?a=lookup,    http://www.investors.com/symbol.asp,-   http://www.cboe.com/DelayedQuote/Symbol.aspx,-   http://personal.fidelity.com/research/stocks/content/stocksind    ex.shtml?bar=c,-   http://www.quicken.com/investments/tsl/,    http://www.globeinvestor.com/static/hubs/lookup.html,-   http://www.usatoday.com/money/search-tips.htm,    http://stockhouse.com/, http://www.thelion.com/,-   http://www.island.com/, http://www.zacks.com/,-   http://www.troweprice.com/common/indexHtml3/0,0,htmlid=38,00.html,-   http://www.amex.com/?href=/quickquote/SymbolLookup.jsp,    http://www.nasdaq.com,-   http://www.nyse.com/, http://www.londonstockexchange.com/en-gb/,    http://www.euronext.com,-   http://www.tsx.com/, http://www.asx.com.au/, http://www.advfn.com,    http://www.mldirect.ml.com,-   http://www.foxnews.com/business/index.html,    http://www.quickandreilly.com/,-   http://www.economist.com/index.html, http://www.kiplinger.com/,    http://www.pennystock.com/,-   http://www.wallstreetselect.com/, http://www.sec.gov/edgar.shtml,    http://www.edgar-online.com/,-   http://freeedgar.com/, http://www.thedeal.com,    http://www.investools.com,-   http://www.activetradermag.com/, http://www.traders.com/, and    http://www.ipohome.com.

The techniques disclosed herein may also provide the user with abeneficial degree of flexibility. For example, the techniques disclosedherein provide the user with the flexibility to type either a stockticker symbol or a company name, depending on the user's preference, ordepending on which of the two the user remembers most easily. The user,therefore, is not limited to a particular mode of input dictated by theprogram. This may make the program easily usable by different classes ofusers, such as both those users who are sophisticated stock traders (andtherefore likely to remember stock ticker symbols) and lesssophisticated users (who are likely to remember company names ratherthan symbols). More generally, the techniques disclosed herein reducethe need for the user to rely on his memory to provide necessary textualinput.

It is to be understood that although the invention has been describedabove in terms of particular embodiments, the foregoing embodiments areprovided as illustrative only, and do not limit or define the scope ofthe invention. Various other embodiments, including but not limited tothe following, are also within the scope of the claims. For example,elements and components described herein may be further divided intoadditional components or joined together to form fewer components forperforming the same functions.

Although certain examples described herein use stock ticker symbol andcompany name as the categories of text strings stored in n-tuples, thetechniques disclosed herein may be applied to text strings representingany categories of content. For example, company sector (or other meansof categorizing a company) is another example of a category of contentto which the techniques disclosed herein may be applied.

Although particular examples disclosed herein involve the use of pairsof text strings, such pairs are merely special cases of n-tuples, inwhich n=2. The techniques disclosed herein may be applied moregenerally, to n-tuples where n>1. Furthermore, the text in the tuplesmay be of any kind and have any relationship to each other. For example,although stock ticker symbols typically have some textual similarity tothe corresponding company names, this is not required. For example, ann-tuple may include a person's name and the person's street address, inwhich case there may be no textual similarity between the various textstrings in the n-tuple.

In certain examples disclosed herein, the text typed by the user ismatched against the beginning (leading characters) of text in then-tuples. This is not, however, a requirement of the present invention.Rather, matching may be performed by comparing any subset of the texttyped by the user against any subset of the n-tuple text. Furthermore,matching need not be performed against all elements in an n-tuple, or inthe same manner against all elements in an n-tuple. For example, if n=3,matching may be performed against two rather than three of the textstrings in the n-tuple.

Although certain examples disclosed herein provide the user with anindication of matches by displaying a list of all text in matchingn-tuples, this is not a requirement of the present invention. Rather,matches may be displayed in a form other than a list. Furthermore,displayed matches need not display all of the text in matching tuples.The user may be allowed to select a matching tuple using any kind ofinput mechanism.

Any kind of computer program may implement the techniques disclosedherein. For example, the techniques disclosed herein may be implementedin a web site displayed by a web browser.

Although the concept of an n-tuple is used herein, the techniquesdisclosed herein may be implemented without storing data in structuresorganized as n-tuples. Rather, the techniques disclosed herein may beimplemented using any kind of data structure, such as linked lists. Thedata against which the user input is matched may be pre-stored,downloaded over a network connection, generated on-the-fly, or produced,stored, and processed in any suitable manner.

The techniques described above may be implemented, for example, inhardware, software, firmware, or any combination thereof. The techniquesdescribed above may be implemented in one or more computer programsexecuting on a programmable computer including a processor, a storagemedium readable by the processor (including, for example, volatile andnon-volatile memory and/or storage elements), at least one input device,and at least one output device. Program code may be applied to inputentered using the input device to perform the functions described and togenerate output. The output may be provided to one or more outputdevices.

Each computer program within the scope of the claims below may beimplemented in any programming language, such as assembly language,machine language, a high-level procedural programming language, or anobject-oriented programming language. The programming language may, forexample, be a compiled or interpreted programming language.

Each such computer program may be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a computer processor. Method steps of the invention may beperformed by a computer processor executing a program tangibly embodiedon a computer-readable medium to perform functions of the invention byoperating on input and generating output. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, the processor receives instructions and data from a read-onlymemory and/or a random access memory. Storage devices suitable fortangibly embodying computer program instructions include, for example,all forms of non-volatile memory, such as semiconductor memory devices,including EPROM, EEPROM, and flash memory devices; magnetic disks suchas internal hard disks and removable disks; magneto-optical disks; andCD-ROMs. Any of the foregoing may be supplemented by, or incorporatedin, specially-designed ASICs (application-specific integrated circuits)or FPGAs (Field-Programmable Gate Arrays). A computer can generally alsoreceive programs and data from a storage medium such as an internal disk(not shown) or a removable disk. These elements will also be found in aconventional desktop or workstation computer as well as other computerssuitable for executing computer programs implementing the methodsdescribed herein, which may be used in conjunction with any digitalprint engine or marking engine, display monitor, or other raster outputdevice capable of producing color or gray scale pixels on paper, film,display screen, or other output medium.

A computer program provides a first set of representations (e.g.,textual representations) of a first set of hyperlinks. In response toselection by a user of one of the first set of hyperlink representations(such as by clicking on or hovering a cursor over the representation),the program displays a second set of representations (e.g., graphicalrepresentations) of a second set of hyperlinks. The user may select oneof the second set of representations, in response to which the programnavigates to the destination of the hyperlink. The second set ofrepresentations may, for example, be logos of companies, and the secondset of hyperlinks may be hyperlinks to the companies' web sites.

For example, referring to FIG. 5A, a web page 500 is shown according toone embodiment of the present invention. The web page 500 includes afirst frame 502 a displaying a first set of textual hyperlinkrepresentations 504 a, and a second frame 502 b displaying the contentsof another web page.

In the embodiment illustrated in FIG. 5A, the first set of hyperlinkrepresentations 504 a includes hypertext 506 a-h. In this example, thehypertext 506 a-h includes text representing categories of news websites. For example, hypertext 506 a (“World News”) represents thecategory of world news web sites, hypertext 506 b (“Business News”)represents the category of business news web sites, and so on. Theparticular number, selection, and categorization of hypertext 506 a-hshown in FIG. 5A is provided merely as an example and does notconstitute a limitation of the present invention.

The hyperlink representations 504 a enable the user to access theunderlying hyperlinks to external websites by hovering over selectingany of the hypertext 506 a-h. The user may, for example, select aparticular link either by clicking on one of the hypertext links 506 a-hor by hovering a mouse cursor over one of the hypertext links 506 a-h.

In response to receiving a selection of one of the hypertext links 5060a-h from the user, the web page 500 displays a second set of hyperlinkrepresentations 504 b. In the particular example illustrated in FIG. 5A,the user has clicked on or hovered the mouse cursor over hypertext 506 h(“Stock Research”). In response, the web page 500 has displayed thesecond set of hyperlink representations 504 b, which representhyperlinks within the selected category. In other words, each of thehyperlink representations 508 a-l represents a hyperlink to a stockresearch web site.

More specifically, in the embodiment illustrated in FIG. 5A, each of thehyperlink representations 508 a-l is a graphic image of the logo of theweb site that is the destination of the hyperlink. For example,hyperlink representation 508 a is the logo of www.bigcharts.com, and thehyperlink representation 508 a acts as a link to www.bigcharts.com.

Therefore, when the user selects (e.g., clicks on or hovers over) one ofthe second set of hyperlink representations 508 a-l, the web browserdisplays the destination of the selected hyperlink in the frame 502 b.For example, if the user selects hyperlink representation 508 a (i.e.,the logo of www.bigcharts.com), the web browser will navigate to anddisplay the home page of www.bigcharts.com in frame 502 b.

Different sets of hyperlinks are displayed as the user selects (e.g.,clicks on or hovers over) different ones of the first set of hyperlinks506 a-h. For example, as shown in FIG. 5B, when the user selectshyperlink 506 d (“UK News”), the web page 500 displays a set 504 c ofhyperlink representations 510 a-j depicting logos of UK news web sites.If hovering is enabled to activate the first set 504 a of links 506 a-h,the user may quickly view the links in different categories by movingthe mouse cursor over different ones of the first set 504 a of links 506a-h. In a web browser, such a feature may be enabled using AJAXtechnology, through which all of the logos may be pre-downloaded withthe web page 500, and then quickly displayed to the user withoutrequiring additional accesses to the server.

The techniques just described may, for example, be implemented inconjunction with a message board aggregation web site of the kinddisclosed in the patent application entitled, “Message BoardAggregator”, now issued under U.S. Pat. No.: 7,529,795.

One advantage of the techniques disclosed herein is that hyperlinkrepresentations (e.g., the hyperlinks 504 b and 504 c) may be displayedto the user essentially instantaneously. Such techniques, therefore,provide the user with a method of scanning through links that is moreintuitive and thus quicker for users than traditional techniques.Furthermore, the use of company logos or other graphical representationsof hyperlinks facilitates the users experience, because it is likelythat the user will already associate the company logo with thecorresponding company name (attached to the hyperlink). The method isalso visually more appealing than commonly used plain text methods.

It is to be understood that although the invention has been describedabove in terms of particular embodiments, the foregoing embodiments areprovided as illustrative only, and do not limit or define the scope ofthe invention. Various other embodiments, including but not limited tothe following, are also within the scope of the claims. For example,elements and components described herein may be further divided intoadditional components or joined together to form fewer components forperforming the same functions. In particular, the functions performed bythe aggregation server 112 shown in FIG. 1 may be further subdividedinto additional components for performing the same functions.

The first set of hyperlinks 504 a may be sorted into categories,sub-categories, and so on, in any manner. Alternatively, they may beunsorted. The hyperlinks that are displayed may be predetermined by theweb page designer, determined by the user, or any combination thereof.The user may, for example, be provided with the ability to set upcategories (and subcategories) comprising favorite website hyperlinks.

Any kind of computer program may implement the techniques disclosedherein. For example, the techniques disclosed herein may be implementedin a web site displayed by a web browser.

The techniques described above may be implemented, for example, inhardware, software, firmware, or any combination thereof. The techniquesdescribed above may be implemented in one or more computer programsexecuting on a programmable computer including a processor, a storagemedium readable by the processor (including, for example, volatile andnon-volatile memory and/or storage elements), at least one input device,and at least one output device. Program code may be applied to inputentered using the input device to perform the functions described and togenerate output. The output may be provided to one or more outputdevices.

Each computer program within the scope of the claims below may beimplemented in any programming language, such as assembly language,machine language, a high-level procedural programming language, or anobject-oriented programming language. The programming language may, forexample, be a compiled or interpreted programming language.

Each such computer program may be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a computer processor. Method steps of the invention may beperformed by a computer processor executing a program tangibly embodiedon a computer-readable medium to perform functions of the invention byoperating on input and generating output. Suitable processors include,by way of example, both general and special purpose microprocessors.Generally, the processor receives instructions and data from a read-onlymemory and/or a random access memory. Storage devices suitable fortangibly embodying computer program instructions include, for example,all forms of non-volatile memory, such as semiconductor memory devices,including EPROM, EEPROM, and flash memory devices; magnetic disks suchas internal hard disks and removable disks; magneto-optical disks; andCD-ROMs. Any of the foregoing may be supplemented by, or incorporatedin, specially-designed ASICs (application-specific integrated circuits)or FPGAs (Field-Programmable Gate Arrays). A computer can generally alsoreceive programs and data from a storage medium such as an internal disk(not shown) or a removable disk. These elements will also be found in aconventional desktop or workstation computer as well as other computerssuitable for executing computer programs implementing the methodsdescribed herein, which may be used in conjunction with any digitalprint engine or marking engine, display monitor, or other raster outputdevice capable of producing color or gray scale pixels on paper, film,display screen, or other output medium.

1. A computer program product embodied on a non-transitory computer readable medium, comprising: computer code for causing display of, utilizing a website, a stock-related field; computer code for allowing receipt of a plurality of characters of text as a user is typing the plurality of characters of text utilizing the stock-related field; computer code for dynamically determining, after the user types each of the plurality of characters of text, whether at least a portion of characters typed so far match one or more text strings in at least one of a plurality of n-tuples including at least two text strings, each of the plurality of n-tuples including first text representing a stock ticker symbol and second text representing a company name corresponding to the stock ticker symbol; computer code for indicating to the user that a match has been found, utilizing the website, if it is determined that the at least portion of characters typed so far match the one or more text strings in the at least one of the plurality of n-tuples; computer code for causing display of, utilizing the website, a plurality of message summaries, wherein the plurality of message summaries comprise first information associated with a first message of a plurality of first messages and second information associated with a second message of a plurality of second messages associated with at least one online forum; computer code for causing display of, utilizing the website, a first set of representations representing a first set of hyperlinks, where the first set of representations are each representative of a predetermined category of content; computer code for allowing receipt of first input initiated by the user indicating a selection of one of the first set of representations; computer code for causing display of a second set of representations representing a second set of hyperlinks, utilizing the website, in response to receiving the first input, where the second set of representations are each representative of at least one of a plurality of subcategories of content associated with the predetermined category and are displayed in a menu format; computer code for allowing receipt of second input initiated by the user indicating a selection of one of the second set of representations; and computer code for causing display of destination content associated with the selected one of the second set of representations, in response to receiving the second input; wherein the computer program product is operable such that a new message is capable of being generated by the user utilizing the website for posting in association with at least one of the plurality of first messages.
 2. The computer program product of claim 1, wherein the computer program product is configured such that: each of the plurality of n-tuples includes only the first text representing the stock ticker symbol and the second text representing the company name corresponding to the stock ticker symbol, the indicating comprises displaying both the first text representing the stock ticker symbol and the second text representing the company name corresponding to the stock ticker symbol in the at least one of the plurality of n-tuples such that the first text precedes the second text, the indicating further comprises displaying multiple n-tuples in a vertically-oriented list directly beneath the stock-related field, the indicating further comprises visually emphasizing a subset of text in at least one of the text strings of each of the multiple n-tuples in the vertically-oriented list with the subset of text matching the at least portion of characters typed so far, and further comprising: computer code for allowing receipt of selection input initiated by the user selecting one of the multiple n-tuples from the vertically-oriented list; and computer code for using at least one of the text strings from the selected one of the multiple n-tuples in connection with the stock-related field.
 3. The computer program product of claim 2, wherein the computer program product is configured such that the using comprises replacing the at least portion of characters typed so far with the at least one of the text strings from the selected one of the multiple n-tuples.
 4. The computer program product of claim 3, wherein the computer program product is configured such that the at least portion of characters typed so far is replaced with only the first text from the selected one of the multiple n-tuples.
 5. The computer program product of claim 3, wherein the computer program product is configured such that the at least portion of characters typed so far is replaced with only the second text from the selected one of the multiple n-tuples.
 6. The computer program product of claim 2, wherein the computer program product is operable such that first indicia is displayed with particular web content for use in connection with at least one aspect of the posting in association with the particular web content on the website in response to a selection thereof and an interface is displayed for allowing the user to type the new message, and further wherein the computer program product is operable such that the user is capable of posting the new message to both: the website which manages the particular web content and a different website which does not manage the particular web content.
 7. The computer program product of claim 6, wherein the computer program product is operable such that the first input includes hovering a cursor and the first set of representations are associated with separate hyperlinks associated with separate web pages and are displayed in connection with an initial web page associated with the website that includes the second set of representations preloaded and initially hidden, and later displayed in response to receiving the first input initiated by the user.
 8. The computer program product of claim 2, wherein the computer program product is configured such that the visually emphasizing includes highlighting.
 9. The computer program product of claim 2, wherein the computer program product is configured such that the multiple n-tuples are sorted in the vertically-oriented list according to the stock ticker symbol independent of whether the at least portion of characters typed so far matches the second text and not the first text.
 10. The computer program product of claim 2, wherein the computer program product is configured such that the dynamically determining comprises determining whether the at least portion of characters typed so far match leading text in the one or more text strings in the at least one of the plurality of n-tuples.
 11. The computer program product of claim 2, wherein the computer program product is configured such that the match is found if the at least portion of characters typed so far match the first text in the at least one of the plurality of n-tuples, even if the at least portion of characters typed so far do not match the second text in the at least one of the plurality of n-tuples, and wherein the computer program product is configured such that the match is also found if the at least portion of characters typed so far match the second text in the at least one of the plurality of n-tuples, even if the at least portion of characters typed so far do not match the first text in the at least one of the plurality of n-tuples.
 12. The computer program product of claim 1, wherein the computer program product is operable such that first indicia is displayed with particular web content for use in connection with at least one aspect of the posting in association with the particular web content on the website in response to a selection thereof and an interface is displayed for allowing the user to type the new message, and further wherein the computer program product is operable such that second indicia is displayed with the particular web content for use in connection with at least one aspect of replying to a posted message that is posted with the particular web content on the website in response to a selection thereof, and further wherein the computer program product is operable such that the user is capable of posting the new message in association with the particular web content to both: the website associated with the particular web content and a different website that is not a source of the particular web content.
 13. The computer program product of claim 12, wherein the computer program product is operable such that first indicia is displayed with the particular web content for use in connection with at least one aspect of the posting in association with the particular web content on the website and an interface is displayed for allowing the user to type the new message, and further wherein the computer program product is operable such that second indicia is displayed with the particular web content for use in connection with at least one aspect of replying to a posted message that is posted with the particular web content on the website, and further wherein the computer program product is operable such that the user is capable of posting at least one message to a different website which does not manage the particular web content.
 14. The computer program product of claim 13, wherein the computer program product is operable such that the particular web content is a portion of the at least one of the plurality of first messages.
 15. The computer program product of claim 12, wherein the computer program product is operable such that the user is capable of selecting to post at least one message in association with the particular web content to either: the website associated with the particular web content or the different website that is not the source of the particular web content.
 16. The computer program product of claim 12, wherein the computer program product is operable such that the user is capable of selecting to post at least one message in association with the particular web content to both: the website associated with the particular web content or the different website that is not the source of the particular web content.
 17. The computer program product of claim 12, wherein the computer program product is operable such that the user is capable of selecting to post at least one message in association with the particular web content from either: the website associated with the particular web content or the different website that is not the source of the particular web content.
 18. The computer program product of claim 12, wherein the computer program product is operable such that the new message is capable of being sorted as a function of time associated with the posting.
 19. The computer program product of claim 12, wherein the computer program product is operable such that the new message is capable of being sorted as a function of a rating of popularity.
 20. The computer program product of claim 12, wherein the computer program product is operable such that the first indicia and the second indicia include buttons, the at least one aspect includes at least one of receiving the new message or submitting the new message, and the interface includes at least a portion of a web page, and the new message is displayed simultaneously with the particular web content.
 21. The computer program product of claim 1, wherein the computer program product is operable such that a web page of the website is configured to increase advertising revenue by more efficiently utilizing a display area.
 22. The computer program product of claim 1, wherein the computer program product is operable such that the first input includes hovering a cursor and the first set of representations are associated with separate hyperlinks associated with separate web pages and are displayed in connection with an initial web page associated with the website that includes the second set of representations pre-downloaded with the initial web page, such that the second set of representations are displayed without requiring an additional access to a server.
 23. The computer program product of claim 1, wherein the computer program product is operable such that the first input includes hovering a cursor and the first set of representations are associated with separate hyperlinks associated with separate web pages and are displayed in connection with an initial web page associated with the website that includes the second set of representations preloaded and initially hidden, and later displayed in response to receiving the first input initiated by the user.
 24. The computer program product of claim 1, wherein the computer program product is operable such that a list of selected message summaries is displayed utilizing the website, wherein the selected message summaries are selected based on selections of the user. 